package ig.metrica.ui.unidadsubcuenta;

import ig.metrica.origenesdedatos.*;
import java.util.ArrayList;
import java.util.Properties;
import java.util.StringTokenizer;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.swing.JOptionPane;
import ig.metrica.ui.PrincipalMetrica;
import ig.metrica.ui.WizzardSevinproPanel;
import ig.util.ConexionServer;
import ig.util.ejb.IGBean;
import ig.util.excepciones.DatoInvalidoExcepcion;
import ig.util.excepciones.LogicaExcepcion;
import java.awt.Dimension;
import javax.swing.JFrame;

public class PantallaUnidadSubcuenta extends WizzardSevinproPanel {

    private PantallaDatosBasicosUnidad datosbasicos;
    private FormatounidadsubcuentaBMPBean home ;
    private FormatoHome home2;
    private FormatounidadsubcuentaBMPBean formatounidad;
    private InitialContext ctx = null;
    private Properties prop = new Properties();
    /*
     * {
     * prop.put(Context.INITIAL_CONTEXT_FACTORY, IGBean.INITIAL_CONTEXT_FACTORY
     * ); String Sockec = new ConexionServer().getSocketServer(); prop.put(
     * Context.PROVIDER_URL, Sockec); ctx = new InitialContext(prop); home =
     * (FormatounidadsubcuentaBMPHome)ctx.lookup("ig.metrica.origenesdedatos.FormatounidadsubcuentaBMP");
     * home2 = (FormatoHome)ctx.lookup("ig.metrica.origenesdedatos.Formato");
	}
     */

    public PantallaUnidadSubcuenta(JFrame frame) throws Exception {
        super(null);
        this.frame = frame;
        ArrayList pantallas = new ArrayList();
        pantallas.add(datosbasicos = new PantallaDatosBasicosUnidad());
        pantallaBusqueda = new PantallaBusquedaUnidad(new PantallaDatosBasicosUnidad(), this);
        setPantallasWizzard(pantallas, pantallaBusqueda);
        setPreferredSize(new Dimension(700, 250));
    }

    protected void adicionarRegistro() throws Exception {

        if (datosbasicos.getUnidad().trim().equals("") || datosbasicos.getFormato().trim().equals("")
                || datosbasicos.getSubcuenta().trim().equals("") || datosbasicos.getDescripcion().trim().equals("")) {

            throw new DatoInvalidoExcepcion("Debe registrarse informacion en todos los campos de la pantalla.");
        }

        StringTokenizer mCod = new StringTokenizer(datosbasicos.getFormato().trim(), "-");
        int mIdFormato = Integer.parseInt(mCod.nextToken());
        
        //home.create(mIdFormato, datosbasicos.getUnidad(), datosbasicos.getSubcuenta(), datosbasicos.getDescripcion());
        
        FormatounidadsubcuentaBMPPK pK = new FormatounidadsubcuentaBMPBean().ejbCreate(mIdFormato, datosbasicos.getUnidad(), datosbasicos.getSubcuenta(), datosbasicos.getDescripcion());
        if(llaveRegistro==null){
            llaveRegistro = new Object[2];
        }
        llaveRegistro[0] = pK;
        
    }

    protected void editarRegistro() throws Exception {

        if (datosbasicos.getUnidad().trim().equals("") || datosbasicos.getFormato().trim().equals("")
                || datosbasicos.getSubcuenta().trim().equals("") || datosbasicos.getDescripcion().trim().equals("")) {
            throw new DatoInvalidoExcepcion("Debe registrarse informacion en todos los campos de la pantalla.");
        }
        StringTokenizer mCod = new StringTokenizer(datosbasicos.getFormato().trim(), "-");
        int mIdFormato = Integer.parseInt(mCod.nextToken());
        formatounidad.setIdformato(mIdFormato);
        formatounidad.setUnidaddecaptura(datosbasicos.getUnidad());
        formatounidad.setSubcuenta(datosbasicos.getSubcuenta());
        formatounidad.setDescripcion(datosbasicos.getDescripcion());
        formatounidad.ejbStore();
    }

    protected void eliminarRegistro() throws Exception {
        formatounidad.ejbRemove();
    }

    protected void cargarRegistro() throws Exception {
        if (llaveRegistro == null) {
            throw new LogicaExcepcion("No es posible realizar la carga del registro con una llave nula");
        }

        formatounidad = new FormatounidadsubcuentaBMPBean().ejbFindByPrimaryKey((FormatounidadsubcuentaBMPPK) llaveRegistro[0]);
        FormatoBean formato = new FormatoBean().ejbFindByPrimaryKey(new FormatoPK(formatounidad.getIdformato()));

        datosbasicos.setFormato(formatounidad.getIdformato() + "-" + formato.getNombre());
        datosbasicos.setSubcuenta(formatounidad.getSubcuenta());
        datosbasicos.setDescripcion(formatounidad.getDescripcion());
        datosbasicos.setUnidad(formatounidad.getUnidaddecaptura());
    }

    protected void salir() {
    }

    protected void nuevo() {
    }
}
